﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Text.RegularExpressions;
using BibliotecaClases;


namespace Parque
{
    public partial class FEspectaculos : Form
    {

        public ENEspectaculos espectaculo;

        public FEspectaculos()
        {
            espectaculo = new ENEspectaculos();
            InitializeComponent();
        }

        private void FEspectaculos_Load(object sender, EventArgs e)
        {

            // TODO: esta línea de código carga datos en la tabla 'bDParqueDataSet.TipoEspectaculo'.
            //NO VA
            //this.TipoEspectaculoTableAdapter.Fill(this.bDParqueDataSet.TipoEspectaculo);
            //espectaculosTableAdapter.Fill(this.bDParqueDataSet.Espectaculos);
            //LimpiarFEmpleado();
            //MostrarTodosLosEmpleados();
            BTEliminar.Enabled = false;
            dateTimePickerFechaBaja.Enabled = false;
        }


        private void buttonSalirEsp_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Realmente desea cerrar la aplicación?", "Cerrar aplicación", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                Application.Exit();
            }
        }

        private void BTExaminar_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "jpg (*.jpg)|*.jpg";
            PBFoto.SizeMode = PictureBoxSizeMode.StretchImage;
            openFileDialog1.ShowDialog();
            PBFoto.ImageLocation = openFileDialog1.FileName.ToString();
            PBFoto.Show();
        }

        private void BTGuardar_Click(object sender, EventArgs e)
        {
            if (comprobarCamposObligatoriosNuevo())
            {
                //if(ComprobarCamposOpcionales())
                //{
                ENEspectaculos esp = recogerEspectaculoNuevo();
                CADEspectaculo bdesp = new CADEspectaculo();

                //if(!HorarioOcupado())
                if (bdesp.InsertarEspectaculo(esp))
                {
                    MessageBox.Show("Espectaculo guardado correctamente");
                }
                else
                    MessageBox.Show("Error al insertar espectaculo");
                //}  
                //}
                this.LimpiarFormulario();
            }
        }


        // TERMINARRRR

        private void LimpiarFormulario()
        {
            TBNombreCorto.Text = "";
            TBNombreEspectaculo.Text = "";
            TBDescripcion.Text = "";
            CBBTipo.SelectedItem = null;
        
        
        
        
        }

        private bool comprobarCamposObligatoriosNuevo()
        {
            bool ok = false;
            if (string.IsNullOrEmpty(TBNombreEspectaculo.Text))
                MessageBox.Show("Debe introducir un nombre");
            else
                if (string.IsNullOrEmpty(TBNombreCorto.Text))
                    MessageBox.Show("Debe introducir un nombre corto");
                else
                    if (CBBTipo.SelectedIndex < 0 || CBBTipo.SelectedIndex >= CBBTipo.Items.Count)
                        MessageBox.Show("Debe introducir un tipo de espectaculo");
                    else
                        if (CBBZona.SelectedIndex < 0 || CBBZona.SelectedIndex >= CBBZona.Items.Count)
                            MessageBox.Show("Debe introducir una zona de espectaculo");
                        else
                            if (CBBDia.SelectedIndex < 0 || CBBDia.SelectedIndex >= CBBDia.Items.Count)
                                MessageBox.Show("Debe introducir un dia para el espectaculo");
                            else
                                if (CBBHoraInicio.SelectedIndex < 0 || CBBHoraInicio.SelectedIndex >= CBBHoraInicio.Items.Count)
                                    MessageBox.Show("Debe introducir una hora para el inicio del espectaculo");
                                else
                                    if (CBBHoraFin.SelectedIndex < 0 || CBBHoraFin.SelectedIndex >= CBBHoraFin.Items.Count)
                                        MessageBox.Show("Debe introducir una hora para el fin del espectaculo");
                                    else
                                        ok = true;
                       
        
            return ok;
        }

        private ENEspectaculos recogerEspectaculoNuevo()
        {
            ENEspectaculos esp = new ENEspectaculos();

            esp.NombreCorto = TBNombreCorto.Text;
            esp.Nombre = TBNombreEspectaculo.Text;
            esp.Descripcion = TBDescripcion.Text;
            esp.Tipo = CBBTipo.SelectedItem.ToString();
            esp.Zona = CBBZona.SelectedItem.ToString();
            esp.Dia = CBBDia.SelectedItem.ToString();
            esp.HoraInicio = CBBHoraInicio.SelectedItem.ToString();
            esp.HoraFin = CBBHoraFin.SelectedItem.ToString();
            esp.FechaAlta = dateTimePickerFechaAlta.Value;

            return esp;
        }

        private void BTBuscar_Click(object sender, EventArgs e)
        {
           
            CADEspectaculo bdesp = new CADEspectaculo();
            List<ENEspectaculos> todosEspectaculos = new List<ENEspectaculos>();
            

            
            if (FormularioVacio())
            {
               todosEspectaculos = bdesp.ObtenerTodosEspectaculos();
            }

        }

        private bool FormularioVacio()
        {
            bool vacio = false;

            if (string.IsNullOrEmpty(TBNombreEspectaculo.Text) && string.IsNullOrEmpty(TBNombreCorto.Text) && string.IsNullOrEmpty(TBDescripcion.Text) &&
                (CBBTipo.SelectedIndex < 0 || CBBTipo.SelectedIndex >= CBBTipo.Items.Count) &&
                    (CBBZona.SelectedIndex < 0 || CBBZona.SelectedIndex >= CBBZona.Items.Count) &&
                    (CBBDia.SelectedIndex < 0 || CBBDia.SelectedIndex >= CBBDia.Items.Count) &&
                     (CBBHoraInicio.SelectedIndex < 0 || CBBHoraInicio.SelectedIndex >= CBBHoraInicio.Items.Count) &&
                      (CBBHoraFin.SelectedIndex < 0 || CBBHoraFin.SelectedIndex >= CBBHoraFin.Items.Count))
                vacio = true;

                return vacio;
        }

        private void BTModificar_Click(object sender, EventArgs e)
        {

        }

        public void Interfaz(int i)
        {
            string path;
            ////////     ESTO ES EL FONDO Y LOS BOTONES DE LA IZQUIERDA
            path = "C:\\bd\\fondo" + i + ".jpg";
            this.BackgroundImage = Image.FromFile(path);

            path = "C:\\bd\\colores\\nuevo" + i + ".png";
            BTGuardar.BackgroundImage = Image.FromFile(path);
            BTGuardar.BackgroundImageLayout = ImageLayout.Stretch;

            path = "C:\\bd\\colores\\modificar" + i + ".png";
            BTModificar.BackgroundImage = Image.FromFile(path);
            BTModificar.BackgroundImageLayout = ImageLayout.Stretch;

            path = "C:\\bd\\colores\\buscar" + i + ".png";
            BTBuscar.BackgroundImage = Image.FromFile(path);
            BTBuscar.BackgroundImageLayout = ImageLayout.Stretch;

            path = "C:\\bd\\colores\\eliminar" + i + ".png";
            BTEliminar.BackgroundImage = Image.FromFile(path);
            BTEliminar.BackgroundImageLayout = ImageLayout.Stretch;

            ////////    A PARTIR DE AQUI ELEGIMOS LOS COLORES SEGUN LA INTERFAZ ELEGIDA
            if (i == 1)
            {
                TBNombreCorto.BackColor = Color.LightCyan;
                TBNombreCorto.ForeColor = Color.MidnightBlue;

                TBNombreEspectaculo.BackColor = Color.LightCyan;
                TBNombreEspectaculo.ForeColor = Color.MidnightBlue;

                TBDescripcion.BackColor = Color.LightCyan;
                TBDescripcion.ForeColor = Color.MidnightBlue;

                CBBTipo.BackColor = Color.LightCyan;
                CBBTipo.ForeColor = Color.MidnightBlue;

                CBBZona.BackColor = Color.LightCyan;
                CBBZona.ForeColor = Color.MidnightBlue;

                CBBDia.BackColor = Color.LightCyan;
                CBBDia.ForeColor = Color.MidnightBlue;

                CBBHoraInicio.BackColor = Color.LightCyan;
                CBBHoraInicio.ForeColor = Color.MidnightBlue;

                CBBHoraFin.BackColor = Color.LightCyan;
                CBBHoraFin.ForeColor = Color.MidnightBlue;

                dateTimePickerFechaAlta.BackColor = Color.LightCyan;
                dateTimePickerFechaAlta.ForeColor = Color.MidnightBlue;

                dateTimePickerFechaBaja.BackColor = Color.LightCyan;
                dateTimePickerFechaBaja.ForeColor = Color.MidnightBlue;

                dataGridViewEspect.BackgroundColor = Color.LightCyan;
                dataGridViewEspect.ForeColor = Color.MidnightBlue;

                // HAY QUE PONER TAMBIEN LOS LABELS!!

            }

            if (i == 2)
            {
                TBNombreCorto.BackColor = Color.Bisque;
                TBNombreCorto.ForeColor = Color.DarkRed;

                TBNombreEspectaculo.BackColor = Color.Bisque;
                TBNombreEspectaculo.ForeColor = Color.DarkRed;

                TBDescripcion.BackColor = Color.Bisque;
                TBDescripcion.ForeColor = Color.DarkRed;

                CBBTipo.BackColor = Color.Bisque;
                CBBTipo.ForeColor = Color.DarkRed;

                CBBZona.BackColor = Color.Bisque;
                CBBZona.ForeColor = Color.DarkRed;

                CBBDia.BackColor = Color.Bisque;
                CBBDia.ForeColor = Color.DarkRed;

                CBBHoraInicio.BackColor = Color.Bisque;
                CBBHoraInicio.ForeColor = Color.DarkRed;

                CBBHoraFin.BackColor = Color.Bisque;
                CBBHoraFin.ForeColor = Color.DarkRed;

                dateTimePickerFechaAlta.BackColor = Color.Bisque;
                dateTimePickerFechaAlta.ForeColor = Color.DarkRed;

                dateTimePickerFechaBaja.BackColor = Color.Bisque;
                dateTimePickerFechaBaja.ForeColor = Color.DarkRed;

                dataGridViewEspect.BackgroundColor = Color.Bisque;
                dataGridViewEspect.ForeColor = Color.DarkRed;

                // HAY QUE PONER TAMBIEN LOS LABELS!!
            }

            if (i == 3)
            {

                TBNombreCorto.BackColor = Color.WhiteSmoke;
                TBNombreCorto.ForeColor = Color.SlateGray;

                TBNombreEspectaculo.BackColor = Color.WhiteSmoke;
                TBNombreEspectaculo.ForeColor = Color.SlateGray;

                TBDescripcion.BackColor = Color.WhiteSmoke;
                TBDescripcion.ForeColor = Color.SlateGray;

                CBBTipo.BackColor = Color.WhiteSmoke;
                CBBTipo.ForeColor = Color.SlateGray;

                CBBZona.BackColor = Color.WhiteSmoke;
                CBBZona.ForeColor = Color.SlateGray;

                CBBDia.BackColor = Color.WhiteSmoke;
                CBBDia.ForeColor = Color.SlateGray;

                CBBHoraInicio.BackColor = Color.WhiteSmoke;
                CBBHoraInicio.ForeColor = Color.SlateGray;

                CBBHoraFin.BackColor = Color.WhiteSmoke;
                CBBHoraFin.ForeColor = Color.SlateGray;

                dateTimePickerFechaAlta.BackColor = Color.WhiteSmoke;
                dateTimePickerFechaAlta.ForeColor = Color.SlateGray;

                dateTimePickerFechaBaja.BackColor = Color.WhiteSmoke;
                dateTimePickerFechaBaja.ForeColor = Color.SlateGray;

                dataGridViewEspect.BackgroundColor = Color.WhiteSmoke;
                dataGridViewEspect.ForeColor = Color.SlateGray;

                // HAY QUE PONER TAMBIEN LOS LABELS!!
            }

            if (i == 4)
            {
                TBNombreCorto.BackColor = Color.Khaki;
                TBNombreCorto.ForeColor = Color.DarkGreen;

                TBNombreEspectaculo.BackColor = Color.Khaki;
                TBNombreEspectaculo.ForeColor = Color.DarkGreen;

                TBDescripcion.BackColor = Color.Khaki;
                TBDescripcion.ForeColor = Color.DarkGreen;

                CBBTipo.BackColor = Color.Khaki;
                CBBTipo.ForeColor = Color.DarkGreen;

                CBBZona.BackColor = Color.Khaki;
                CBBZona.ForeColor = Color.DarkGreen;

                CBBDia.BackColor = Color.Khaki;
                CBBDia.ForeColor = Color.DarkGreen;

                CBBHoraInicio.BackColor = Color.Khaki;
                CBBHoraInicio.ForeColor = Color.DarkGreen;

                CBBHoraFin.BackColor = Color.Khaki;
                CBBHoraFin.ForeColor = Color.DarkGreen;

                dateTimePickerFechaAlta.BackColor = Color.Khaki;
                dateTimePickerFechaAlta.ForeColor = Color.DarkGreen;

                dateTimePickerFechaBaja.BackColor = Color.Khaki;
                dateTimePickerFechaBaja.ForeColor = Color.DarkGreen;

                dataGridViewEspect.BackgroundColor = Color.Khaki;
                dataGridViewEspect.ForeColor = Color.DarkGreen;


                // HAY QUE PONER TAMBIEN LOS LABELS!!

            }

            if (i == 5)
            {
                TBNombreCorto.BackColor = Color.WhiteSmoke;
                TBNombreCorto.ForeColor = Color.Black;

                TBNombreEspectaculo.BackColor = Color.WhiteSmoke;
                TBNombreEspectaculo.ForeColor = Color.Black;

                TBDescripcion.BackColor = Color.WhiteSmoke;
                TBDescripcion.ForeColor = Color.Black;

                CBBTipo.BackColor = Color.WhiteSmoke;
                CBBTipo.ForeColor = Color.Black;

                CBBZona.BackColor = Color.WhiteSmoke;
                CBBZona.ForeColor = Color.Black;

                CBBDia.BackColor = Color.WhiteSmoke;
                CBBDia.ForeColor = Color.Black;

                CBBHoraInicio.BackColor = Color.WhiteSmoke;
                CBBHoraInicio.ForeColor = Color.Black;

                CBBHoraFin.BackColor = Color.WhiteSmoke;
                CBBHoraFin.ForeColor = Color.Black;

                dateTimePickerFechaAlta.BackColor = Color.WhiteSmoke;
                dateTimePickerFechaAlta.ForeColor = Color.Black;

                dateTimePickerFechaBaja.BackColor = Color.WhiteSmoke;
                dateTimePickerFechaBaja.ForeColor = Color.Black;

                dataGridViewEspect.BackgroundColor = Color.WhiteSmoke;
                dataGridViewEspect.ForeColor = Color.Black;
            }
 
        }

    }
}